<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        function abc(a = "default", b) {
            // let a="abc"  todo 这里类似golang ， 参数有a,参数里面不需要定义a,
            console.log(a, b)
        }

        abc(a = 1, b = 2);// 1,2
        abc(1); //1,undefined

        //todo 默认参数
        function abcd({a = "1", b = "2"} = {}) {
            console.log("this is func abcd:", a, b)
        }

        abcd({a: 2});
        abcd();

        // todo 。。。参数
        function tao(a) {
            console.log(a) // 数组打印

        }

        function tao1(...a) {
            console.log(a)   // 数组打印
        }

        function tao2(a) {
            console.log(a)   // 只会打印第一个  aa
        }

        let arr1 = ["aa", "bb", "cc"];
        console.log(arr1);
        console.log(...arr1); // 分开打印,
        //todo golang 这样打散  arr1..., 这样聚合 arr1 ...int
        // todo es6 打散 ...arr1,这样聚合 ...arr1
        tao(arr1);  // 数组打印
        tao1(...arr1);  // 数组打印
        tao2(...arr1);

        // todo 剩余参数
        function tao3(a, b, ...c) {
            console.log(a, b, c) // cc 是剩下的所有参数 "aa","bb", ["cc"]
        }

        tao3(...arr1);

        // todo
        json = {a: "aa", b: "bb"};

        function tao4(...j) {
            console.log(typeof j); //object
            console.log(j[0].a, j[1].b) // aa,bb

        }

        tao4(json, json);




        // todo 箭头函数
        let show =(...a) =>{
          console.log(a);  // [1]
        };
        // function show(...a) {
        //     console.log(a)
        // }
        show(1)

    </script>
</head>

<body>

</body>
</html>